package com.party.core.service.mall;

import com.party.core.model.mall.MallGoodsSpec;
import com.party.core.model.mall.MallGoodsSpecOutput;
import com.party.core.service.IBaseService;

import java.util.List;
import java.util.Map;

/**
 * 商品规格服务接口
 * Created by wei.li
 *
 * @date 2017/8/15 0015
 * @time 18:33
 */

public interface IMallGoodsSpecService extends IBaseService<MallGoodsSpec> {

    /**
     * 根据产品编号查询
     *
     * @param productId 产品编号
     * @return 规格关系
     */
    List<MallGoodsSpec> findByProductId(String productId);

    /**
     * 获取唯一的产品规格
     *
     * @param productSpec
     * @return 规格关系
     */
    MallGoodsSpec getUnique(MallGoodsSpec productSpec);

    /**
     * 根据产品id查询
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> batchProductList(Map<String, Object> params);

    Map<String, String> getProductSpec(String goodsId, String delFlag);

    /**
     * 根据规格值编号查询
     *
     * @param specValueId 规格值编号
     * @return 规格关系
     */
    List<MallGoodsSpec> findBySpecValueId(String specValueId);

    /**
     * 根据商品编号查询
     *
     * @param goodsId 商品编号
     * @return
     */
    List<MallGoodsSpec> findByGoodsId(String goodsId);

    List<MallGoodsSpec> findByGoodsIdDelFlag(String goodsId);

    /**
     * 根据规格编号查询
     *
     * @param specId 规格编号
     * @return
     */
    List<MallGoodsSpec> findBySpecId(String specId);

    /**
     * 获取某商品的产品和规格分类
     * @param id: 商品id
     * @return
     */
    MallGoodsSpecOutput specs(String id);

    void deleteByGoodsId(String goodsId);
}
